import {
	baseUrl
} from './env';
import $ from 'jquery';

export default async ({url = '', data = {}, type = 'GET', method = 'fetch', token = ''}) => {
	type = type.toUpperCase();
	if (!url.match('http')) {
		url = baseUrl + url;

	}

	// if (type == 'GET') {
	// 	let dataStr = ''; //数据拼接字符串
	// 	Object.keys(data).forEach(key => {
	// 		dataStr += key + '=' + data[key] + '&';
	// 	})

	// 	if (dataStr !== '') {
	// 		dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
	// 		url = url + '?' + dataStr;
	// 	}
	// }

	return new Promise((resolve, reject) => {
		if (method == 'post') {
			data = JSON.stringify(data);
		}

		url = url.replace(' ', '');

		$.ajax({
			type: method,
			url: url,
			data: data,
			headers: {
				"Content-Type": "application/json",
				"Authorization": token,
			},
			success: function (res) {
				resolve(res);
			},
			error: function (res) {
				reject(res);
			}
		})
	})
	// if (window.fetch && method == 'fetch') {
	// 	let requestConfig = {
	// 		credentials: 'include',
	// 		method: type,
	// 		headers: {
	// 			'Accept': 'application/json',
	// 			'Content-Type': 'application/json',
	// 			"Access-Control-Allow-Origin": "*",
	// 			"Access-Control-Allow-Methods": "PUT,GET,POST,OPTIONS",
	// 			"Access-Control-Allow-Headers":
	// 				"X-Requested-With, Content-Type, X-File-Name"
	// 		},
	// 		mode: "cors",
	// 		cache: "force-cache"
	// 	}

	// 	if (type == 'POST') {
	// 		Object.defineProperty(requestConfig, 'body', {
	// 			value: JSON.stringify(data)
	// 		})
	// 	}

	// 	try {
	// 		const response = await fetch(url, requestConfig);
	// 		const responseJson = await response.json();
	// 		return responseJson
	// 	} catch (error) {
	// 		throw new Error(error)
	// 	}
	// } else {
	// return new Promise((resolve, reject) => {
	// 	let requestObj;
	// 	if (window.XMLHttpRequest) {
	// 		requestObj = new XMLHttpRequest();
	// 	} else {
	// 		requestObj = new ActiveXObject;
	// 	}

	// 	let sendData = '';
	// 	if (type == 'POST') {
	// 		sendData = JSON.stringify(data);
	// 	}

	// 	requestObj.open(type, url, true);
	// 	console.log(url);
	// 	requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	// 	requestObj.setRequestHeader("Access-Control-Allow-Origin", "*");
	// 	requestObj.setRequestHeader("Access-Control-Allow-Methods", "PUT,GET,POST,OPTIONS");
	// 	requestObj.setRequestHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-File-Name");
	// 	requestObj.send(sendData);

	// 	requestObj.onreadystatechange = () => {
	// 		if (requestObj.readyState == 4) {
	// 			if (requestObj.status == 200) {
	// 				let obj = requestObj.response
	// 				if (typeof obj !== 'object') {
	// 					obj = JSON.parse(obj);
	// 				}
	// 				resolve(obj)
	// 			} else {
	// 				reject(requestObj)
	// 			}
	// 		}
	// 	}
	// })
	// }

}